/*
 * Surface.h
 *
 *  Created on: Nov 19, 2012
 *      Author: lucas
 */

#ifndef SURFACE_H_
#define SURFACE_H_
#include <list>
#include "PhysicsElement.h"
#include "PhysicsPoint.h"

class Surface : public PhysicsElement {
private:
	std::list<PhysicsPoint *> points;
public:
	Surface();
	void add(PhysicsPoint &point);
	void remove(PhysicsPoint &point);
	void approximateLine(int totalPoints);
	virtual void checkCollision(PhysicsElement &other);
	virtual void onCollisionResponse(PhysicsElement &other);
	virtual ~Surface();
};

#endif /* SURFACE_H_ */
